package tech.waterism.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 调度方案成果统计
 */
@Data
@ApiModel(value = "调度方案成果统计表DTO")
public class DispatchStatisticsDto implements Serializable {
    private static final long serialVersionUID = 842598669303953109L;

    /**
     * 河道起调时刻流量
     * qReal beg
     */
    @ApiModelProperty(value = "河道起调时刻流量")
    private Double qbeg;

    /**
     * 水库/河道起调后洪峰流量
     * qSim peak
     */
    @ApiModelProperty(value = "水库/河道起调后洪峰流量")
    private Double qpeak;

    /**
     * 水库/河道起调前洪峰流量
     * qreal peak
     */
    @ApiModelProperty(value = "水库/河道起调前洪峰流量")
    private Double preQpeak;

    /**
     * 水库起调前出流峰现时间
     * preQOutPeak preQOutPeak
     */
    @ApiModelProperty(value = "水库起调前出流峰值")
    private Double preQOutPeak;

    /**
     * 水库起调前出流峰现时间
     * preQOutPeakTime preQOutPeakTime
     */
    @ApiModelProperty(value = "水库起调前出流峰现时间")
    private Date preQOutPeakTime;

    /**
     * 水库/河道起调后峰现时间
     * qSim peak time
     */
    @ApiModelProperty(value = "水库/河道起调后峰现时间")
    private Date qpeaktime;

    /**
     * 水库/河道起调后峰现时间
     * qreal peak time
     */
    @ApiModelProperty(value = "水库/河道起调前峰现时间")
    private Date preQpeaktime;

    /**
     * 水库起调后出流洪峰流量
     * qOut peak
     */
    @ApiModelProperty(value = "水库起调后出流洪峰流量")
    private Double qoutPeak;

    /**
     * 水库起调后出流峰现时间
     * qOut peak time
     */
    @ApiModelProperty(value = "水库起调后出流峰现时间")
    private Date qoutPeaktime;

    /**
     * 水库下泄水量
     * qOut sum
     */
    @ApiModelProperty(value = "水库下泄水量")
    private Double qoutsum;

    /**
     * 水库到达河道站点的时间
     */
    @ApiModelProperty(value = "水库到达河道站点的时间")
    private List<ArriveTimeDto> arriveTimeList;

    /**
     * 水库起调后洪水总量
     * qSim sum
     */
    @ApiModelProperty(value = "水库起调后洪水总量")
    private Double qsum;

    /**
     * 水库起调前洪水总量
     * preQSum preQSum
     */
    @ApiModelProperty(value = "水库起调前洪水总量")
    private Double preQSum;

    /**
     * 河道起调后首次超过保证流量的时间
     * qSim over grZ time
     */
    @ApiModelProperty(value = "河道起调后首次超过保证流量的时间")
    private Date qovergrqtime;

    /**
     * 河道起调后首次超过警戒流量的时间
     * qSim over wrZ time
     */
    @ApiModelProperty(value = "河道起调后首次超过警戒流量的时间")
    private Date qoverwrqtime;

    /**
     * 河道起调时刻水位
     * qReal beg
     */
    @ApiModelProperty(value = "河道起调时刻水位")
    private Double zbeg;

    /**
     * 河道起调后最高水位
     * zSim peak
     */
    @ApiModelProperty(value = "河道起调后最高水位")
    private Double zpeak;

    /**
     * 河道起调前最高水位
     * zreal peak
     */
    @ApiModelProperty(value = "河道起调前最高水位")
    private Double preZpeak;

    /**
     * 河道起调后最高水位出现时间
     * zSim peak time
     */
    @ApiModelProperty(value = "河道起调后最高水位出现时间")
    private Date zpeaktime;

    /**
     * 河道起调前最高水位出现时间
     * zreal peak time
     */
    @ApiModelProperty(value = "河道起调前最高水位出现时间")
    private Date preZpeaktime;

    /**
     * 河道起调后首次超过保证水位的时间
     * zSim over grZ time
     */
    @ApiModelProperty(value = "河道起调后首次超过保证水位的时间")
    private Date zovergrztime;

    /**
     * 河道起调后首次超过警戒水位的时间
     * zSim over wrZ time
     */
    @ApiModelProperty(value = "河道起调后首次超过警戒水位的时间")
    private Date zoverwrztime;

    /**
     * 水库/蓄滞洪区起调水位
     * rz beg
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调水位")
    private Double rzbeg;

    /**
     * 水库/蓄滞洪区起调后最高水位
     * rz peak
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后最高水位")
    private Double rzpeak;

    /**
     * 水库/蓄滞洪区起调后最高水位
     * rz peak
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调前最高水位")
    private Double preRzpeak;

    /**
     * 水库/蓄滞洪区起调后最高水位的出现时间
     * rz Peak Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后最高水位的出现时间")
    private Date rzpeaktime;

    /**
     * 水库/蓄滞洪区起调前最高水位的出现时间
     * rz Peak Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调前最高水位的出现时间")
    private Date preRzpeaktime;

    /**
     * 水库/蓄滞洪区起调后首次超过汛限水位的时间
     * rz Over FsltdZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后首次超过汛限水位的时间")
    private Date rzoverfsltdztime;

    /**
     * 水库/蓄滞洪区起调前首次超过汛限水位的时间
     * rz Over FsltdZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后首次超过汛限水位的时间")
    private Date preRzoverfsltdztime;

    /**
     * 水库/蓄滞洪区起调后首次超过正常高水位的时间
     * rz Over NormZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后首次超过正常高水位的时间")
    private Date rzovernormztime;

    /**
     * 水库/蓄滞洪区起调后最终回落至汛限水位以下的时间
     * rz Below FsltdZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后最终回落至汛限水位以下的时间")
    private Date rzbelowfsltdztime;

    /**
     * 水库/蓄滞洪区起调前最终回落至汛限水位以下的时间
     * rz Below FsltdZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调前最终回落至汛限水位以下的时间")
    private Date preRzbelowfsltdztime;

    /**
     * 水库/蓄滞洪区起调后最终回落至正常高水位以下的时间
     * rz Below NormZ Time
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后最终回落至正常高水位以下的时间")
    private Date rzbelownormztime;

    /**
     * 水库/蓄滞洪区起调后超过汛限水位的时间范围
     * rz Over FsltdZ Time List
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后超过汛限水位的时间范围")
    private List<DateInterval> rzoverfsltdztimeList;

    /**
     * 水库/蓄滞洪区起调前超过汛限水位的时间范围
     * rz Over FsltdZ Time List
     */
    @ApiModelProperty(value = "水库/蓄滞洪区起调后超过汛限水位的时间范围")
    private List<DateInterval> preRzoverfsltdztimeList;

    /**
     * 蓄滞洪区起调后分洪洪量
     */
    @ApiModelProperty(value = "蓄滞洪区起调后分洪洪量")
    private Double qdvrsum;

    /**
     * 蓄滞洪区起调后分洪起始时间
     */
    @ApiModelProperty(value = "蓄滞洪区起调后分洪起始时间")
    private Date qdvrbegtime;

    /**
     * 蓄滞洪区起调后排洪洪量
     */
    @ApiModelProperty(value = "蓄滞洪区起调后排洪洪量")
    private Double qdscsum;

    /**
     * 蓄滞洪区起调后排洪起始时间
     */
    @ApiModelProperty(value = "蓄滞洪区起调后排洪起始时间")
    private Date qdscbegtime;
}

